[INFO] cloning repository https://github.com/KyleDerZweite/p2p-cli
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/KyleDerZweite/p2p-cli" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKyleDerZweite%2Fp2p-cli", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKyleDerZweite%2Fp2p-cli'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] d4779c7c629e3d515bc7ac938fcbb017f5331044
[INFO] checking KyleDerZweite/p2p-cli against master#03c609abb6638f9d7f49f34326d4137d07f5cd61 for pr-155945
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FKyleDerZweite%2Fp2p-cli" "/workspace/builds/worker-2-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-2-tc1/source'...
[INFO] [stderr] done.
[INFO] started tweaking git repo https://github.com/KyleDerZweite/p2p-cli
[INFO] finished tweaking git repo https://github.com/KyleDerZweite/p2p-cli
[INFO] tweaked toml for git repo https://github.com/KyleDerZweite/p2p-cli written to /workspace/builds/worker-2-tc1/source/Cargo.toml
[INFO] validating manifest of git repo https://github.com/KyleDerZweite/p2p-cli on toolchain 03c609abb6638f9d7f49f34326d4137d07f5cd61
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] crate git repo https://github.com/KyleDerZweite/p2p-cli already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded io-uring v0.7.8
[INFO] [stderr]   Downloaded stability v0.2.1
[INFO] [stderr]   Downloaded rusqlite v0.29.0
[INFO] [stderr]   Downloaded cc v1.2.29
[INFO] [stderr]   Downloaded ratatui v0.26.3
[INFO] [stderr]   Downloaded tokio v1.46.1
[INFO] [stderr]   Downloaded libsqlite3-sys v0.26.0
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 6308a21622b07e46d7622f9aaa0290942249538c058eb79c058b0cc6701de379
[INFO] running `Command { std: "docker" "start" "-a" "6308a21622b07e46d7622f9aaa0290942249538c058eb79c058b0cc6701de379", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "6308a21622b07e46d7622f9aaa0290942249538c058eb79c058b0cc6701de379", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "6308a21622b07e46d7622f9aaa0290942249538c058eb79c058b0cc6701de379", kill_on_drop: false }`
[INFO] [stdout] 6308a21622b07e46d7622f9aaa0290942249538c058eb79c058b0cc6701de379
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-2-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:d429b63d4308055ea97f60fb1d3dfca48854a00942f1bd2ad806beaf015945ec" "/opt/rustwide/cargo-home/bin/cargo" "+03c609abb6638f9d7f49f34326d4137d07f5cd61" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 01718dbf04e0524aabd9c3bb172445abad639f4ab7c0b7541fb6ecc4ee5635a1
[INFO] running `Command { std: "docker" "start" "-a" "01718dbf04e0524aabd9c3bb172445abad639f4ab7c0b7541fb6ecc4ee5635a1", kill_on_drop: false }`
[INFO] [stderr]    Compiling libc v0.2.174
[INFO] [stderr]     Checking cfg-if v1.0.1
[INFO] [stderr]    Compiling num-traits v0.2.19
[INFO] [stderr]     Checking base64ct v1.8.0
[INFO] [stderr]    Compiling generic-array v0.14.7
[INFO] [stderr]     Checking bitflags v2.9.1
[INFO] [stderr]    Compiling cc v1.2.29
[INFO] [stderr]     Checking ppv-lite86 v0.2.21
[INFO] [stderr]    Compiling syn v2.0.104
[INFO] [stderr]    Compiling curve25519-dalek v4.1.3
[INFO] [stderr]    Compiling num-bigint-dig v0.8.4
[INFO] [stderr]     Checking spin v0.9.8
[INFO] [stderr]     Checking hashbrown v0.15.4
[INFO] [stderr]     Checking itertools v0.13.0
[INFO] [stderr]     Checking castaway v0.2.3
[INFO] [stderr]     Checking fallible-iterator v0.2.0
[INFO] [stderr]     Checking ahash v0.8.12
[INFO] [stderr]     Checking pem-rfc7468 v0.7.0
[INFO] [stderr]     Checking lazy_static v1.5.0
[INFO] [stderr]     Checking memchr v2.7.5
[INFO] [stderr]     Checking hashbrown v0.14.5
[INFO] [stderr]     Checking compact_str v0.7.1
[INFO] [stderr]     Checking fallible-streaming-iterator v0.1.9
[INFO] [stderr]     Checking iana-time-zone v0.1.63
[INFO] [stderr]     Checking rustix v1.1.2
[INFO] [stderr]     Checking dotenv v0.15.0
[INFO] [stderr]     Checking block-buffer v0.10.4
[INFO] [stderr]     Checking inout v0.1.4
[INFO] [stderr]     Checking lru v0.12.5
[INFO] [stderr]     Checking hashlink v0.8.4
[INFO] [stderr]     Checking num-integer v0.1.46
[INFO] [stderr]     Checking unicode-truncate v1.1.0
[INFO] [stderr]     Checking getrandom v0.2.16
[INFO] [stderr]     Checking signal-hook-registry v1.4.5
[INFO] [stderr]     Checking parking_lot_core v0.9.11
[INFO] [stderr]     Checking mio v0.8.11
[INFO] [stderr]     Checking getrandom v0.3.3
[INFO] [stderr]     Checking socket2 v0.5.10
[INFO] [stderr]     Checking dirs-sys v0.3.7
[INFO] [stderr]     Checking mio v1.0.4
[INFO] [stderr]     Checking num-iter v0.1.45
[INFO] [stderr]     Checking directories v4.0.1
[INFO] [stderr]    Compiling libsqlite3-sys v0.26.0
[INFO] [stderr]     Checking rand_core v0.6.4
[INFO] [stderr]     Checking signal-hook v0.3.18
[INFO] [stderr]     Checking parking_lot v0.12.4
[INFO] [stderr]     Checking crypto-common v0.1.6
[INFO] [stderr]     Checking rand_chacha v0.3.1
[INFO] [stderr]     Checking signal-hook-mio v0.2.4
[INFO] [stderr]     Checking digest v0.10.7
[INFO] [stderr]     Checking universal-hash v0.5.1
[INFO] [stderr]     Checking cipher v0.4.4
[INFO] [stderr]     Checking aead v0.5.2
[INFO] [stderr]     Checking crossterm v0.27.0
[INFO] [stderr]     Checking rand v0.8.5
[INFO] [stderr]     Checking polyval v0.6.2
[INFO] [stderr]     Checking signature v2.2.0
[INFO] [stderr]     Checking sha2 v0.10.9
[INFO] [stderr]     Checking ghash v0.5.1
[INFO] [stderr]     Checking ctr v0.9.2
[INFO] [stderr]     Checking aes v0.8.4
[INFO] [stderr]     Checking tempfile v3.23.0
[INFO] [stderr]     Checking ed25519 v2.2.3
[INFO] [stderr]     Checking aes-gcm v0.10.3
[INFO] [stderr]    Compiling zeroize_derive v1.4.2
[INFO] [stderr]    Compiling serde_derive v1.0.219
[INFO] [stderr]    Compiling curve25519-dalek-derive v0.1.1
[INFO] [stderr]    Compiling strum_macros v0.26.4
[INFO] [stderr]    Compiling tokio-macros v2.5.0
[INFO] [stderr]    Compiling stability v0.2.1
[INFO] [stderr]    Compiling thiserror-impl v1.0.69
[INFO] [stderr]    Compiling clap_derive v4.5.49
[INFO] [stderr]     Checking tokio v1.46.1
[INFO] [stderr]     Checking zeroize v1.8.1
[INFO] [stderr]     Checking der v0.7.10
[INFO] [stderr]     Checking thiserror v1.0.69
[INFO] [stderr]     Checking strum v0.26.3
[INFO] [stderr]     Checking ed25519-dalek v2.2.0
[INFO] [stderr]     Checking ratatui v0.26.3
[INFO] [stderr]     Checking spki v0.7.3
[INFO] [stderr]     Checking pkcs8 v0.10.2
[INFO] [stderr]     Checking clap v4.5.53
[INFO] [stderr]     Checking pkcs1 v0.7.5
[INFO] [stderr]     Checking rsa v0.9.8
[INFO] [stderr]     Checking serde v1.0.219
[INFO] [stderr]     Checking uuid v1.17.0
[INFO] [stderr]     Checking serde_json v1.0.140
[INFO] [stderr]     Checking chrono v0.4.41
[INFO] [stderr]     Checking rusqlite v0.29.0
[INFO] [stderr]     Checking p2p-cli v0.2.0 (/opt/rustwide/workdir)
[INFO] [stdout] warning: unused imports: `Terminal` and `backend::CrosstermBackend`
[INFO] [stdout]  --> src/ui/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     backend::CrosstermBackend,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     Terminal,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Stdout`
[INFO] [stdout]  --> src/ui/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::Stdout;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event` and `KeyEvent`
[INFO] [stdout]   --> src/ui/mod.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use crossterm::event::{Event, KeyEvent};
[INFO] [stdout]    |                            ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::Frame`
[INFO] [stdout]   --> src/ui/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use ratatui::Frame;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Terminal` and `backend::CrosstermBackend`
[INFO] [stdout]  --> src/ui/mod.rs:3:5
[INFO] [stdout]   |
[INFO] [stdout] 3 |     backend::CrosstermBackend,
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 4 |     Terminal,
[INFO] [stdout]   |     ^^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `#[warn(unused_imports)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `std::io::Stdout`
[INFO] [stdout]  --> src/ui/mod.rs:6:5
[INFO] [stdout]   |
[INFO] [stdout] 6 | use std::io::Stdout;
[INFO] [stdout]   |     ^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused imports: `Event` and `KeyEvent`
[INFO] [stdout]   --> src/ui/mod.rs:18:28
[INFO] [stdout]    |
[INFO] [stdout] 18 | pub use crossterm::event::{Event, KeyEvent};
[INFO] [stdout]    |                            ^^^^^  ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused import: `ratatui::Frame`
[INFO] [stdout]   --> src/ui/mod.rs:19:9
[INFO] [stdout]    |
[INFO] [stdout] 19 | pub use ratatui::Frame;
[INFO] [stdout]    |         ^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/app/mod.rs:151:49
[INFO] [stdout]     |
[INFO] [stdout] 151 |             NetworkEvent::ConnectionEstablished(addr) => {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/app/mod.rs:154:42
[INFO] [stdout]     |
[INFO] [stdout] 154 |             NetworkEvent::ConnectionLost(addr) => {
[INFO] [stdout]     |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/app/mod.rs:158:44
[INFO] [stdout]     |
[INFO] [stdout] 158 |             NetworkEvent::ConnectionFailed(addr, error) => {
[INFO] [stdout]     |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_private_key` and `get_public_key` are never used
[INFO] [stdout]    --> src/crypto/session.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl CryptoManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn get_private_key(&self) -> &RsaPrivateKey {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn get_public_key(&self) -> &RsaPublicKey {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `verifying_key` is never used
[INFO] [stdout]    --> src/crypto/identity.rs:165:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl IdentityManager {
[INFO] [stdout]     | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn verifying_key(&self) -> &VerifyingKey {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum P2PError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 11 |     KeyGenerationError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     EncryptionError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     DecryptionError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     IdentityNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     IdentityMismatch {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     UntrustedPeer(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     ConnectionError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     ConnectionTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     PeerDisconnected,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     StorageError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     InvalidSecurityLevel(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     UnknownCommand(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `peer_id` are never read
[INFO] [stdout]  --> src/messagedb.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct StoredMessage {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] 7 |     pub id: i64,
[INFO] [stdout]   |         ^^
[INFO] [stdout] 8 |     pub peer_id: String,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `StoredMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fingerprint`, `trust_level`, `first_seen`, and `last_seen` are never read
[INFO] [stdout]   --> src/messagedb.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct TrustedIdentity {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 41 |     pub identity_key: String,
[INFO] [stdout] 42 |     pub fingerprint: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 43 |     pub alias: Option<String>,
[INFO] [stdout] 44 |     pub trust_level: TrustLevel,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 45 |     pub first_seen: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 46 |     pub last_seen: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrustedIdentity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `untrust_identity`, `get_all_trusted_identities`, `get_all_peers`, `delete_peer`, and `get_message_count` are never used
[INFO] [stdout]    --> src/messagedb.rs:196:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl MessageDB {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn untrust_identity(&self, fingerprint: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn get_all_trusted_identities(&self) -> Result<Vec<TrustedIdentity>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn get_all_peers(&self) -> Result<Vec<PeerInfo>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn delete_peer(&self, peer_id: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn get_message_count(&self, peer_id: &str) -> Result<i64, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `peer_id`, `public_key`, `last_ip`, `created_at`, and `last_seen` are never read
[INFO] [stdout]    --> src/messagedb.rs:375:9
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub struct PeerInfo {
[INFO] [stdout]     |            -------- fields in this struct
[INFO] [stdout] 375 |     pub peer_id: String,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 376 |     pub public_key: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 377 |     pub alias: Option<String>,
[INFO] [stdout] 378 |     pub last_ip: Option<String>,
[INFO] [stdout]     |         ^^^^^^^
[INFO] [stdout] 379 |     pub created_at: String,
[INFO] [stdout]     |         ^^^^^^^^^^
[INFO] [stdout] 380 |     pub last_seen: String,
[INFO] [stdout]     |         ^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `PeerInfo` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/ui/mod.rs:24:23
[INFO] [stdout]    |
[INFO] [stdout] 24 |     KeyPress(KeyCode, KeyModifiers),
[INFO] [stdout]    |     --------          ^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UiEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     KeyPress(KeyCode, KeyModifiers),
[INFO] [stdout] 24 +     KeyPress(KeyCode, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Resize` is never constructed
[INFO] [stdout]   --> src/ui/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum UiEvent {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Resize(u16, u16),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UiEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SecuritySelection` is never constructed
[INFO] [stdout]    --> src/ui/mod.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum InputMode {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 106 |     SecuritySelection,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InputMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Disconnected` is never constructed
[INFO] [stdout]    --> src/ui/mod.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub enum ConnectionStatus {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 117 |     Disconnected,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_event` and `size` are never used
[INFO] [stdout]    --> src/ui/mod.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl UiManager {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn next_event(&mut self) -> Result<Option<UiEvent>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn size(&self) -> Result<(u16, u16), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `size` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl TerminalManager {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn size(&self) -> Result<(u16, u16), Box<dyn std::error::Error>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_event` is never used
[INFO] [stdout]   --> src/ui/input.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl InputHandler {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn next_event(&mut self) -> Result<Option<UiEvent>, Box<dyn std::error::Error>> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/mod.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 |     ListenerStarted(u16),
[INFO] [stdout]    |     --------------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     ListenerStarted(u16),
[INFO] [stdout] 17 +     ListenerStarted(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/mod.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ListenerFailed(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     ListenerFailed(String),
[INFO] [stdout] 18 +     ListenerFailed(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Disconnect` is never constructed
[INFO] [stdout]   --> src/network/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum NetworkCommand {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Disconnect(SocketAddr),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_event` and `disconnect` are never used
[INFO] [stdout]   --> src/network/mod.rs:72:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NetworkManager {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn next_event(&mut self) -> Option<NetworkEvent> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub async fn disconnect(&self, peer: SocketAddr) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `ping_response` is never used
[INFO] [stdout]    --> src/network/messages.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl NetworkMessage {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn ping_response(from_ip: String, ping_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `port` is never read
[INFO] [stdout]   --> src/app/state.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub port: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_connection`, `is_connected`, and `has_incoming_connection` are never used
[INFO] [stdout]    --> src/app/state.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl AppState {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn reset_connection(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn is_connected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn has_incoming_connection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `description`, `requires_signatures`, and `requires_key_rotation` are never used
[INFO] [stdout]   --> src/app/config.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl SecurityLevel {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn requires_signatures(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn requires_key_rotation(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default` and `validate` are never used
[INFO] [stdout]    --> src/app/config.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl AppConfig {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn default() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/app/mod.rs:151:49
[INFO] [stdout]     |
[INFO] [stdout] 151 |             NetworkEvent::ConnectionEstablished(addr) => {
[INFO] [stdout]     |                                                 ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(unused_variables)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/app/mod.rs:154:42
[INFO] [stdout]     |
[INFO] [stdout] 154 |             NetworkEvent::ConnectionLost(addr) => {
[INFO] [stdout]     |                                          ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: unused variable: `addr`
[INFO] [stdout]    --> src/app/mod.rs:158:44
[INFO] [stdout]     |
[INFO] [stdout] 158 |             NetworkEvent::ConnectionFailed(addr, error) => {
[INFO] [stdout]     |                                            ^^^^ help: if this is intentional, prefix it with an underscore: `_addr`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `get_private_key` and `get_public_key` are never used
[INFO] [stdout]    --> src/crypto/session.rs:150:12
[INFO] [stdout]     |
[INFO] [stdout]  22 | impl CryptoManager {
[INFO] [stdout]     | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 150 |     pub fn get_private_key(&self) -> &RsaPrivateKey {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 154 |     pub fn get_public_key(&self) -> &RsaPublicKey {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `#[warn(dead_code)]` (part of `#[warn(unused)]`) on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `fingerprint_from_base64` and `verifying_key` are never used
[INFO] [stdout]    --> src/crypto/identity.rs:109:12
[INFO] [stdout]     |
[INFO] [stdout]  21 | impl IdentityManager {
[INFO] [stdout]     | -------------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 109 |     pub fn fingerprint_from_base64(public_key_b64: &str) -> P2PResult<String> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 165 |     pub fn verifying_key(&self) -> &VerifyingKey {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple variants are never constructed
[INFO] [stdout]   --> src/error.rs:11:5
[INFO] [stdout]    |
[INFO] [stdout]  5 | pub enum P2PError {
[INFO] [stdout]    |          -------- variants in this enum
[INFO] [stdout] ...
[INFO] [stdout] 11 |     KeyGenerationError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 14 |     EncryptionError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 17 |     DecryptionError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 27 |     IdentityNotFound(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 30 |     IdentityMismatch {
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 36 |     UntrustedPeer(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 40 |     ConnectionError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 43 |     ConnectionTimeout,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 52 |     PeerDisconnected,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     StorageError(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 66 |     InvalidSecurityLevel(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 83 |     UnknownCommand(String),
[INFO] [stdout]    |     ^^^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `P2PError` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `id` and `peer_id` are never read
[INFO] [stdout]  --> src/messagedb.rs:7:9
[INFO] [stdout]   |
[INFO] [stdout] 6 | pub struct StoredMessage {
[INFO] [stdout]   |            ------------- fields in this struct
[INFO] [stdout] 7 |     pub id: i64,
[INFO] [stdout]   |         ^^
[INFO] [stdout] 8 |     pub peer_id: String,
[INFO] [stdout]   |         ^^^^^^^
[INFO] [stdout]   |
[INFO] [stdout]   = note: `StoredMessage` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `fingerprint`, `trust_level`, `first_seen`, and `last_seen` are never read
[INFO] [stdout]   --> src/messagedb.rs:42:9
[INFO] [stdout]    |
[INFO] [stdout] 40 | pub struct TrustedIdentity {
[INFO] [stdout]    |            --------------- fields in this struct
[INFO] [stdout] 41 |     pub identity_key: String,
[INFO] [stdout] 42 |     pub fingerprint: String,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 43 |     pub alias: Option<String>,
[INFO] [stdout] 44 |     pub trust_level: TrustLevel,
[INFO] [stdout]    |         ^^^^^^^^^^^
[INFO] [stdout] 45 |     pub first_seen: String,
[INFO] [stdout]    |         ^^^^^^^^^^
[INFO] [stdout] 46 |     pub last_seen: String,
[INFO] [stdout]    |         ^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `TrustedIdentity` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: multiple associated items are never used
[INFO] [stdout]    --> src/messagedb.rs:61:12
[INFO] [stdout]     |
[INFO] [stdout]  53 | impl MessageDB {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  61 |     pub fn new_in_memory() -> Result<Self, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 196 |     pub fn untrust_identity(&self, fingerprint: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 205 |     pub fn get_all_trusted_identities(&self) -> Result<Vec<TrustedIdentity>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 299 |     pub fn get_peer_by_id(&self, peer_id: &str) -> Result<Option<PeerInfo>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 324 |     pub fn set_peer_alias(&self, peer_id: &str, alias: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 332 |     pub fn get_all_peers(&self) -> Result<Vec<PeerInfo>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 358 |     pub fn delete_peer(&self, peer_id: &str) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 366 |     pub fn get_message_count(&self, peer_id: &str) -> Result<i64, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: struct `PeerInfo` is never constructed
[INFO] [stdout]    --> src/messagedb.rs:374:12
[INFO] [stdout]     |
[INFO] [stdout] 374 | pub struct PeerInfo {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `1` is never read
[INFO] [stdout]   --> src/ui/mod.rs:24:23
[INFO] [stdout]    |
[INFO] [stdout] 24 |     KeyPress(KeyCode, KeyModifiers),
[INFO] [stdout]    |     --------          ^^^^^^^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UiEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 24 -     KeyPress(KeyCode, KeyModifiers),
[INFO] [stdout] 24 +     KeyPress(KeyCode, ()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Resize` is never constructed
[INFO] [stdout]   --> src/ui/mod.rs:35:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum UiEvent {
[INFO] [stdout]    |          ------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 35 |     Resize(u16, u16),
[INFO] [stdout]    |     ^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `UiEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `SecuritySelection` is never constructed
[INFO] [stdout]    --> src/ui/mod.rs:106:5
[INFO] [stdout]     |
[INFO] [stdout] 102 | pub enum InputMode {
[INFO] [stdout]     |          --------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 106 |     SecuritySelection,
[INFO] [stdout]     |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `InputMode` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Disconnected` is never constructed
[INFO] [stdout]    --> src/ui/mod.rs:117:5
[INFO] [stdout]     |
[INFO] [stdout] 111 | pub enum ConnectionStatus {
[INFO] [stdout]     |          ---------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 117 |     Disconnected,
[INFO] [stdout]     |     ^^^^^^^^^^^^
[INFO] [stdout]     |
[INFO] [stdout]     = note: `ConnectionStatus` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_event` and `size` are never used
[INFO] [stdout]    --> src/ui/mod.rs:180:12
[INFO] [stdout]     |
[INFO] [stdout] 165 | impl UiManager {
[INFO] [stdout]     | -------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 180 |     pub fn next_event(&mut self) -> Result<Option<UiEvent>, Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 203 |     pub fn size(&self) -> Result<(u16, u16), Box<dyn std::error::Error>> {
[INFO] [stdout]     |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `size` is never used
[INFO] [stdout]   --> src/ui/terminal.rs:41:12
[INFO] [stdout]    |
[INFO] [stdout] 17 | impl TerminalManager {
[INFO] [stdout]    | -------------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 41 |     pub fn size(&self) -> Result<(u16, u16), Box<dyn std::error::Error>> {
[INFO] [stdout]    |            ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: method `next_event` is never used
[INFO] [stdout]   --> src/ui/input.rs:15:12
[INFO] [stdout]    |
[INFO] [stdout]  9 | impl InputHandler {
[INFO] [stdout]    | ----------------- method in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 15 |     pub fn next_event(&mut self) -> Result<Option<UiEvent>, Box<dyn std::error::Error>> {
[INFO] [stdout]    |            ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/mod.rs:17:21
[INFO] [stdout]    |
[INFO] [stdout] 17 |     ListenerStarted(u16),
[INFO] [stdout]    |     --------------- ^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 17 -     ListenerStarted(u16),
[INFO] [stdout] 17 +     ListenerStarted(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `0` is never read
[INFO] [stdout]   --> src/network/mod.rs:18:20
[INFO] [stdout]    |
[INFO] [stdout] 18 |     ListenerFailed(String),
[INFO] [stdout]    |     -------------- ^^^^^^
[INFO] [stdout]    |     |
[INFO] [stdout]    |     field in this variant
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkEvent` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] help: consider changing the field to be of unit type to suppress this warning while preserving the field numbering, or remove the field
[INFO] [stdout]    |
[INFO] [stdout] 18 -     ListenerFailed(String),
[INFO] [stdout] 18 +     ListenerFailed(()),
[INFO] [stdout]    |
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: variant `Disconnect` is never constructed
[INFO] [stdout]   --> src/network/mod.rs:27:5
[INFO] [stdout]    |
[INFO] [stdout] 23 | pub enum NetworkCommand {
[INFO] [stdout]    |          -------------- variant in this enum
[INFO] [stdout] ...
[INFO] [stdout] 27 |     Disconnect(SocketAddr),
[INFO] [stdout]    |     ^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `NetworkCommand` has derived impls for the traits `Clone` and `Debug`, but these are intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `next_event` and `disconnect` are never used
[INFO] [stdout]   --> src/network/mod.rs:72:18
[INFO] [stdout]    |
[INFO] [stdout] 37 | impl NetworkManager {
[INFO] [stdout]    | ------------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 72 |     pub async fn next_event(&mut self) -> Option<NetworkEvent> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 82 |     pub async fn disconnect(&self, peer: SocketAddr) -> Result<(), Box<dyn std::error::Error>> {
[INFO] [stdout]    |                  ^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated function `ping_response` is never used
[INFO] [stdout]    --> src/network/messages.rs:198:12
[INFO] [stdout]     |
[INFO] [stdout]  41 | impl NetworkMessage {
[INFO] [stdout]     | ------------------- associated function in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 198 |     pub fn ping_response(from_ip: String, ping_id: Uuid) -> Self {
[INFO] [stdout]     |            ^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: field `port` is never read
[INFO] [stdout]   --> src/app/state.rs:38:9
[INFO] [stdout]    |
[INFO] [stdout]  9 | pub struct AppState {
[INFO] [stdout]    |            -------- field in this struct
[INFO] [stdout] ...
[INFO] [stdout] 38 |     pub port: u16,
[INFO] [stdout]    |         ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `AppState` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `reset_connection`, `is_connected`, and `has_incoming_connection` are never used
[INFO] [stdout]    --> src/app/state.rs:98:12
[INFO] [stdout]     |
[INFO] [stdout]  60 | impl AppState {
[INFO] [stdout]     | ------------- methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout]  98 |     pub fn reset_connection(&mut self) {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 122 |     pub fn is_connected(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 127 |     pub fn has_incoming_connection(&self) -> bool {
[INFO] [stdout]     |            ^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: methods `description`, `requires_signatures`, and `requires_key_rotation` are never used
[INFO] [stdout]   --> src/app/config.rs:33:12
[INFO] [stdout]    |
[INFO] [stdout] 10 | impl SecurityLevel {
[INFO] [stdout]    | ------------------ methods in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 33 |     pub fn description(&self) -> &'static str {
[INFO] [stdout]    |            ^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 51 |     pub fn requires_signatures(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 59 |     pub fn requires_key_rotation(&self) -> bool {
[INFO] [stdout]    |            ^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: associated items `default` and `validate` are never used
[INFO] [stdout]    --> src/app/config.rs:120:12
[INFO] [stdout]     |
[INFO] [stdout] 110 | impl AppConfig {
[INFO] [stdout]     | -------------- associated items in this implementation
[INFO] [stdout] ...
[INFO] [stdout] 120 |     pub fn default() -> Self {
[INFO] [stdout]     |            ^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 128 |     pub fn validate(&self) -> Result<(), String> {
[INFO] [stdout]     |            ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 23.78s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: num-bigint-dig v0.8.4
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 1`
[INFO] running `Command { std: "docker" "inspect" "01718dbf04e0524aabd9c3bb172445abad639f4ab7c0b7541fb6ecc4ee5635a1", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "01718dbf04e0524aabd9c3bb172445abad639f4ab7c0b7541fb6ecc4ee5635a1", kill_on_drop: false }`
[INFO] [stdout] 01718dbf04e0524aabd9c3bb172445abad639f4ab7c0b7541fb6ecc4ee5635a1
